#ifndef UERU_GLOBALS_HPP
#define UERU_GLOBALS_HPP

#include "GameState.hpp"
#include <SFML/Graphics/Font.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <memory>

#if defined(_DEBUG)
#define DEBUG_TEXT_DISP	(1)
#endif

extern GameState* g_gameState;
extern sf::RenderWindow* g_window;
extern unsigned int g_winWidth;
extern unsigned int g_winHeight;
extern sf::Clock g_appClock;
extern int g_seedLeft;

extern bool g_debugDraw;

// Resources
extern sf::Font* g_defaultFont;
extern sf::Unicode::Text g_charSet;
//Font for Debug
#if defined(DEBUG_TEXT_DISP)
extern sf::Font* g_debugFont;
extern sf::Unicode::Text g_debugCharSet;
#endif

extern const char* g_levelFiles[];
extern const unsigned int g_numLevels;

#define PI 3.1415926535f

// Helper Functions
extern void LoadResources();
extern void FreeResources();
extern void ChangeGameState(GameState* nextState);
extern void Log(const char* message);

#endif
